Make delayed_job sleep_delay and max_run_time .env configurable

Dominik Sander 9 ans auparavant
Parent
Commettre
3e085512ff
2 fichiers modifiés avec 9 ajouts et 2 suppressions
  1. 7 1
      .env.example
  2. 2 1
      config/initializers/delayed_job.rb

+ 7 - 1
.env.example

@@ -147,7 +147,7 @@ ENABLE_SECOND_PRECISION_SCHEDULE=false
147 147
 # Specify the scheduler frequency in seconds (default: 0.3).
148 148
 # Increasing this value will help reduce the use of system resources
149 149
 # at the expense of time accuracy.
150
-#SCHEDULER_FREQUENCY=0.3
150
+SCHEDULER_FREQUENCY=0.3
151 151
 
152 152
 # Use Graphviz for generating diagrams instead of using Google Chart
153 153
 # Tools.  Specify a dot(1) command path built with SVG support
@@ -159,3 +159,9 @@ TIMEZONE="Pacific Time (US & Canada)"
159 159
 
160 160
 # Number of failed jobs to keep in the database
161 161
 FAILED_JOBS_TO_KEEP=100
162
+
163
+# Maximum runtime of background jobs in minutes
164
+DELAYED_JOB_MAX_RUNTIME=20
165
+
166
+# Amount of seconds for delayed_job to sleep before checking for new jobs
167
+DELAYED_JOB_SLEEP_DELAY=10

+ 2 - 1
config/initializers/delayed_job.rb

@@ -1,9 +1,10 @@
1 1
 Delayed::Worker.destroy_failed_jobs = false
2 2
 Delayed::Worker.max_attempts = 5
3
-Delayed::Worker.max_run_time = 20.minutes
3
+Delayed::Worker.max_run_time = (ENV['DELAYED_JOB_MAX_RUNTIME'].presence || 20).to_i.minutes
4 4
 Delayed::Worker.read_ahead = 5
5 5
 Delayed::Worker.default_priority = 10
6 6
 Delayed::Worker.delay_jobs = !Rails.env.test?
7
+Delayed::Worker.sleep_delay = (ENV['DELAYED_JOB_SLEEP_DELAY'].presence || 10).to_f
7 8
 
8 9
 # Delayed::Worker.logger = Logger.new(Rails.root.join('log', 'delayed_job.log'))
9 10
 # Delayed::Worker.logger.level = Logger::DEBUG